VADScross C
Proven C for Embedded Systems
- Is easy to learn and use
- Is extremely reliable
- Provides extensive support for demanding embedded applications
- Offers extremely powerful debugging support
- Generates compact, high-performance executables
- Provides real-time performance capability
- Works for small projects and those with millions of lines of code
- Has the same features and "look and feel" across all platforms
Rational's VADScross C(TM) is a family of mature, production-quality, optimizing
ANSI C cross-compilers and related tools to help you debug,
understand, tune,
and deliver your code. VADScross is available for most popular
embedded-system targets. All VADScross compilers are built from a common
code base, so
they offer a common user interface and common functionality.
VADScross is a
fundamental component of Rational's modern software-engineering
solution,
which comprises a set of software processes, products, and services
that give
you control of your software-development efforts and sharpen your
competitive
edge.
Provides a solution for every C application
There is an easy-to-use VADScross solution for every embedded
project
requiring the use of C: ANSI C, standard C, and traditional C.
VADScross
provides support for host-to-target development of real-time
embedded systems.
VADScross includes all of the tools needed for fast, efficient cross
development.
Brings you higher development productivity
Each VADScross product includes--in addition to the cross-compiler--a code
optimizer, a Motif-based symbolic debugger, a disassembler, a set of
ANSI C
standard libraries, a multitasking microkernel, and extensive online
help.
VADScross C also includes a compilation library manager that helps
you
organize the components of a large program by establishing multiple
libraries
based on your specific project needs.
No matter what target you use, the power of VADS helps you
complete your application in less time and with lower
risk.
Optimizes your code for high performance
VADS offers dozens of user-controllable code optimizations. These
include:
- Code straightening
- Constant folding and copy, value, and range propagation
- Hoisting of loop-invariant code
- Elimination of common subexpressions and redundant branches
- Strength reduction on induction expressions
- Removal of dead variable assignments
- Sophisticated register allocation and management
- Peephole optimization
VADS code generators for RISC architectures perform instruction
scheduling and
generate hardware floating-point instructions when appropriate.
VADS produces
code that is fast, compact, and efficient. It minimizes the size of
your application
and maximizes its performance. The VADScross linker features
selective linking,
which creates the smallest possible executable by including only the
subprograms and data your application requires.
Reduces turnaround time dramatically
Even though the VADS compilers are very fast, linking large
programs could be a
bottleneck that impedes fast edit-compile-debug turnaround time.
To solve this
problem, for example, we designed the VADScross linker to be fast,
so you can
quickly edit, compile, link, and then test your code. VADS minimizes
object file
symbolics to reduce the amount of work the linker must do.
Provides high-performance runtime options
The VADS microkernel provides full support for real-time
applications and
extended capabilities to give you more control over real-time
performance.
Mailboxes, semaphores, interrupt service routines, and multiple
programs are
supported. The VADS microkernel offers flexible memory
management, I/O
support, timer support, and support for intraprogram POSIX threads.
The small,
fast, and efficient VADS microkernel can be easily configured and
tailored to
customized target systems. VADS gives you control where you need
it.
Offers a powerful, nonintrusive debugger
VADScross includes a Motif-based windowing symbolic debugger.
Because the
VADS debugger gets its symbolic information from the compilation
library instead
of from your executables, you can debug without recompiling.
The VADS debugger fully supports source- and machine-level
debugging. You
can:
- Examine and modify the values of memory locations, registers,
and complex
data structures
- Single-step over instructions and over calls and display and
navigate through
the call stack
- Set breakpoints at source-level statements, at instructions, or
at the
beginnings of subprograms
- Set conditional breaks and specify automatic actions at
breakpoints
The VADS debugger allows interactive subprogram calls, so you can
write and
use sophisticated debugging instrumentation subprograms. It
provides extensive
command logging and scripting capabilities to automate your
debugging activities
and make them reproducible. You can invoke the editor from the
debugger to
make changes immediately to your source code. The debugger
understands all
of the VADS runtime options, giving you a single, consistent
debugger model
even if you use the additional real-time mechanisms provided by
VADS. Using
the browsing capabilities of the VADS debugger, you can quickly
understand the
behavior of your program.
Debugs optimized code
With VADS, you debug the fully optimized code that will run in your
fielded
application. You never need to recompile your code with
optimizations turned off
to use the debugger. You save time and have increased confidence in
your
application because you can debug the executable you will deploy.
Debugs your embedded systems in real time
The VADS cross-compilers include the VADS debugger in cross-development
mode, making it easy to test and debug embedded systems. You
download and
debug directly from the host, choosing the host-to-target
communications link that
best meets your project's needs: RS232, Ethernet, or emulator.
Because the
target debug monitor is a stand-alone, system-level debugging
agent, you can
debug at the lowest levels--interrupt service routines or kernel
configuration
code--not just at the application level. The VADS symbolic debugger
can also
serve as the interface for your in-circuit emulator. Trace buffers
record signals
from every buffer cycle out of the CPU, so that you can review the
buffer and
analyze the course of debugging. For architectures that include
Rational's
instruction-level simulators, you can use the VADS debugger to
analyze and
debug your application as it runs on the simulator, just as you would
use the
debugger on a program running on the embedded hardware.
The combination of VADScross and VADSsim allows testing
on
your host and full support for developing for the
target.
Enhances mixed-language programming
VADScross C works closely with the VADS Ada compiler family,
making mixed-language application development simpler and more reliable.
For embedded systems, VADScross C and VADS Ada share
optimization, code
generation, linking, debugging, calling conventions, memory
allocation,
embedded cross-I/O, and runtime facilities. This sharing ensures
that your mixed-language applications will be easy to develop, debug, and test.
The VADScross debugger provides full, symbolic, source-level
debugging for
mixed-language programs consisting of C, Ada, and assembly. You
can get an
interleaved source and assembly listing from the VADS debugger
without
recompiling your code.
Frees you from dependence on your current hardware
The entire VADS family is built from a shared base of source code.
The "look and
feel," compiler details, debugger operations, interface to the
runtime executive,
and most other product features are identical for VADS on all
platforms.
The hardware independence of VADS enables you to work on the
hardware of
your choice, to share software among dissimilar hardware systems,
and to
develop software programs on multiple hosts. Source code is
extremely portable
from one member of the VADS family to another. You can change host
or target
hardware as your requirements change, without changing your
application code
or retraining your development team.
Brings you field-proven reliability
The technology in the VADS C compiler family has been in use for
years, both in-house at Rational and on some of the world's most demanding
software projects.
VADS has been proven on projects ranging from thousands to
millions of lines of
code. Our regression test suite includes millions of lines of
customer code from
some of the most demanding applications.
From the shipment of the first VADS product over a decade ago, we
have
focused on maximizing customer productivity and providing the
precision and
robustness that programmers expect from their tools. VADS C
reflects our
experience in supporting some of the largest and most sophisticated
applications
worldwide. We have designed, refined, and expanded VADS to
implement
features demanded by real-world programmers. VADS meets the
most stringent
program needs, because we have paid attention to the performance
demands of
our customers.
Works with other tools to provide a complete solution
The VADS family also includes optional tools to give you an even
more complete
development solution.
VADSanalysis(TM) gives you nonintrusive coverage analysis,
performance
profiling, and program tracing and debugging to help you rapidly
understand and
tune your application's behavior.
VADSsim(TM) provides efficient, instruction-level simulation of
major target
architectures, allowing you to develop and test your program on the
host system
even before your embedded hardware is available.
Available configurations
VADScross C is available today for popular embedded processors
from popular
host platforms. New members of the VADS C family are added on
demand
thanks to our highly automated software integration and build
process. Please
contact your Rational representative for an up-to-date list of
supported
platforms.
D-123A; last updated 10/2/95